package com.github.cyf.databaseLock;

import lombok.Data;

import java.util.concurrent.ScheduledFuture;

/**
 * @author chenyifan
 * @create 2024-07-11 14:41
 */
@Data
public class Locker {

    /**
     * 锁定的 key
     */
    private String key;

    /**
     * 使用 token 认证线程的身份，防止误删锁，否则任何线程都可以调用 release 去释放锁了
     */
    private String token;

    /**
     * 每个锁都有线程进行续约
     */
    private ScheduledFuture<?> scheduledFuture;

    public Locker() {
    }

    public Locker(String key, String token, ScheduledFuture<?> scheduledFuture) {
        this.key = key;
        this.token = token;
        this.scheduledFuture = scheduledFuture;
    }
}